package com.dji.sample.wayline.service;

import org.springframework.web.multipart.MultipartFile;

/**
 * OSS文件服务接口
 * 提供从OSS下载文件的功能
 */
public interface IOssFileService {

    /**
     * 根据ObjectKey从OSS下载文件并返回MultipartFile
     * 
     * @param objectKey OSS对象键
     * @return MultipartFile 下载的文件
     * @throws RuntimeException 当下载失败时抛出异常
     */
    MultipartFile downloadFileByObjectKey(String objectKey);

    /**
     * 根据ObjectKey从指定bucket下载文件并返回MultipartFile
     * 
     * @param bucket 存储桶名称
     * @param objectKey OSS对象键
     * @return MultipartFile 下载的文件
     * @throws RuntimeException 当下载失败时抛出异常
     */
    MultipartFile downloadFileByObjectKey(String bucket, String objectKey);

    /**
     * 根据ObjectKey获取文件的URL
     * 
     * @param objectKey OSS对象键
     * @return String 文件的URL
     * @throws RuntimeException 当获取失败时抛出异常
     */
    String getFileUrlByObjectKey(String objectKey);

    /**
     * 根据ObjectKey从指定bucket获取文件的URL
     * 
     * @param bucket 存储桶名称
     * @param objectKey OSS对象键
     * @return String 文件的URL
     * @throws RuntimeException 当获取失败时抛出异常
     */
    String getFileUrlByObjectKey(String bucket, String objectKey);
}